//打印验证码
function VertificateCode(x){
    let lowwer="abcdefghijklmnopqrstwvuxyz"  
    let upper="ABCDEFGHIJKLMNOPQRSTWVUXYZ"  
    let digit="0123456789"

    function created() {
        let data=""
        for (let i=0;i<x;i++){
            let c = Math.floor(Math.random()*3) //随机取到0,1,2整数
            if(c==0){
                data+=digit[Math.floor(Math.random()*10)] //取随机整数
            }
            else if(c==1){
                data+=lowwer[Math.floor(Math.random()*26)]//取随机小写字母
            }
            else {
                data+=upper[Math.floor(Math.random()*26)]//取随机大写字母
            }
        }
        return data
    }
    printf=()=> {console.log(created());
    }
    return printf
}

a = VertificateCode(6)
a()



var a=1
function fn1(){
    var a=4
    function fn3(){
        fn2()
    }
    return fn3
}
function fn2() {
    console.log(a);
}
var fn=fn1()
fn()
// 1. 定义全局变量a,a=1
// 2. 定义全局函数fn1()
// 3. 定义全局函数fn2()--->fn2()中a指向全局变量
// 4. 定义全局变量fn=fn1()
// 5. 调用fn()--->fn3()--->fn3是fn1()局部变量，其次fn3中定义局部变量a=4
// 6. fn3() 内部调用全局变量fn2()此时fn2内指向的a并未发生改变，fn2()打印1